/*
 泛型的作用：使用泛型可以减少重复的代码
 封装函数：接收字符串就返回字符串，接收数字就返回数字，接收bool就返回bool
 */
void main() {
  // 1. 普通封装
  funcString('123');
  funcNum(123);
  funcBool(true);

  // 2. 基于泛型封装
  funcDemo<String>('123');
  funcDemo<num>(123);
  funcDemo<bool>(true);
}

T funcDemo<T>(T params) {
  return params;
}

String funcString(String params) {
  return params;
}

num funcNum(num params) {
  return params;
}

bool funcBool(bool params) {
  return params;
}
